﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using PetShopService;

public partial class Usuario_produto_carrinho : System.Web.UI.Page {

    PetShopService.ProdutoServicos produtoServicos = new PetShopService.ProdutoServicos();
    PetShopService.PedidoServico pedidoServicos = new PetShopService.PedidoServico();

    protected void Page_Load(object sender, EventArgs e) {

        if (IsPostBack || Request.QueryString["id"] == null)
            return;

        int idProduto = int.Parse(Request.QueryString["id"]);

        PetShopService.Produto oProduto = produtoServicos.RetornaProduto(idProduto);
        
        if (oProduto.Saldo == 0) {
            lblRepsosta.Text = "Produto indisponivel";
            return;
        }

        txtDescricao.Text = oProduto.Nome;
        txtPreco.Text = oProduto.Preco.ToString();
        txtQuantidade.Text = "1";

        if (Request.QueryString["idItemDesejado"] == null)
            return;

        int idItemDesejado = Convert.ToInt32(Request.QueryString["idItemDesejado"]);
        ItensDesejadosServico desejadosServicos = new ItensDesejadosServico();
        desejadosServicos.DefineItemDesejadoComoComprado(idItemDesejado);
        desejadosServicos.DeletaItemDesejado(idItemDesejado);
    }

    protected void btnConfirmar_Click(object sender, EventArgs e) {
        
        if (Request.QueryString["id"] == null)
            return;

        int idProduto = int.Parse(Request.QueryString["id"]);

        Produto oProduto = produtoServicos.RetornaProduto(idProduto);
        if (oProduto.Saldo < Convert.ToInt16(txtQuantidade.Text)) {
            lblRepsosta.Text = "Saldo indisponivel, no momento temos apenas " + oProduto.Saldo + " unidades em estoque";
            return;
        }

        List<PetShopService.ProdutoCarrinho> listaCarrinho = pedidoServicos.produtosCarrinho;
        if (listaCarrinho == null)
            listaCarrinho = new List<PetShopService.ProdutoCarrinho>();
        else{
            ProdutoCarrinho oProdutoExistente = listaCarrinho.Where(p => p.idProduto == idProduto).FirstOrDefault();
            if(oProdutoExistente != null){
                oProdutoExistente.quantidade += Convert.ToInt16(txtQuantidade.Text);
                listaCarrinho.Remove(oProdutoExistente);
                listaCarrinho.Add(oProdutoExistente);
                pedidoServicos.produtosCarrinho = listaCarrinho;
                
                Response.Redirect("~/default.aspx");
            }
        }

        ProdutoCarrinho oProdutoCarrinho = new ProdutoCarrinho(); 
        oProdutoCarrinho.idProduto = idProduto;
        oProdutoCarrinho.nomeProduto = txtDescricao.Text;
        oProdutoCarrinho.desconto = 0;
        oProdutoCarrinho.quantidade = Convert.ToInt16(txtQuantidade.Text);
        oProdutoCarrinho.preco = Convert.ToDecimal(txtPreco.Text);

        listaCarrinho.Add(oProdutoCarrinho);
        pedidoServicos.produtosCarrinho = listaCarrinho;

        Response.Redirect("~/default.aspx");

    }
}